package com.xqboss.apps.task;

import com.xqboss.apps.service.consumer.ConsumerTeamService;
import com.xqboss.apps.service.consumer.TeamPunchStatService;
import com.xqboss.apps.service.punch.PunchUserConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.time.LocalDate;

/**
 * @author Trent
 * @date 2023/9/6
 */
@Component("punchTask")
public class PunchTask {

    @Autowired
    private PunchUserConfigService punchUserConfigService;

    @Autowired
    private ConsumerTeamService teamService;

    @Autowired
    private TeamPunchStatService teamPunchStatService;

    /**
     * 每天00：00执行，清空今日打卡数据
     */
    public void cleanTodayData(){
        // 清空用户今日打卡统计数据
        punchUserConfigService.cleanTodayData();
        // 清空队伍打卡增益数据
        teamService.cleanTeamPunchGain();
    }

    /**
     * 开始团队打卡结算
     */
    public void startTeamIncomeSettle(){
        // 结算昨天的数据
        LocalDate yesterday = LocalDate.now().plusDays( -1 );
        // 统计队伍打卡信息
        teamService.statTeamPunch(yesterday);
        // 分发用户队伍打卡收益
        teamPunchStatService.dispatchUserTeamIncome(yesterday);
    }

//    /**
//     * 每周日晚上11点 开启打卡规则
//     */
//    public void openPunchRule() {
//        punchUserConfigService.openPunchRule();
//    }
//
//    /**
//     * 每周五晚上11点 关闭打卡规则
//     */
//    public void closePunchRule() {
//        punchUserConfigService.closePunchRule();
//    }
    /**
     * 计算打卡日并设置过期时间
     * 每天01：00执行，检查今日是否打卡日（过期时间大于当天00.00）
     */
    public void calculatePunchSetExpiration() {
        punchUserConfigService.calculatePunchSetExpiration();
    }
}
